延續昨日的常用字串函數介紹,
今天要介紹的是用分隔符取字串和字串合併,
前者常會用來取特定資料,
後者則常會用來組成語法,
下面會舉一些例子。
分隔符取字串簡單來說,
就像是我們平常寫日記,可能內文開頭寫一大串:
「今天天氣很好,太陽出來了,風兒輕輕吹」,
我們想根據逗號擷取每句話,分隔符就會填寫「,」,
SUBSTRING_INDEX會抓取分隔符號之前的所有字串。
找到第1個分隔符(逗號)的左邊所有文字
SELECT SUBSTRING_INDEX('今天天氣很好,太陽出來了,風兒輕輕吹',',',1);
今天天氣晴
會從右邊數回來,-1就是尾巴數回來第一個,
所以會回傳尾巴數回來第1個分隔符(逗號),在右邊的內容。
我的記法是:從右邊看回來所以回傳右邊的內容。
SELECT SUBSTRING_INDEX('今天天氣很好,太陽出來了,風兒輕輕吹',',',--1);
風兒輕輕吹
既然這語法只能取分隔符左邊或是分隔符右邊的內容,要如何取中間的文字呢?
我們可以組和語法,取出中間字串,
假設我們字串是:「第一句話,第二句話,第三句話」,
那我們可以先取第2個逗號的左邊:「第一句話,第二句話」,
再取出右邊數來第一個逗號的右邊:「第二句話」。
寫成sql的話:
SELECT SUBSTRING_INDEX('今天天氣很好,太陽出來了,風兒輕輕吹',',',2);
今天天氣晴,太陽出來了
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('今天天氣很好,太陽出來了,風兒輕輕吹',',',2),',',-1);
太陽出來了
CONCAT可以把字串直接黏起來。
SELECT CONCAT('今天天氣很好','太陽出來了','風兒輕輕吹');
今天天氣很好太陽出來了風兒輕輕吹
CONCAT_WS可以在字串跟字串中間插入分隔符。
SELECT CONCAT_WS(',','今天天氣很好','太陽出來了','風兒輕輕吹');
今天天氣很好,太陽出來了,風兒輕輕吹
大大您好
SELECT SUBSTRING_INDEX('今天天氣很好,太陽出來了,風兒輕輕吹',',',--1);
最後一個參數的地方應該多一個負號